#ifndef __REAL_TIME_DATA_H__
#define __REAL_TIME_DATA_H__
#include "RealTimeDataItem.h"
#include "includes.h"
#include "RealTimeDataInfo.h"
#include <string>

#define __RealTimeData_Declare(name) int name(std::vector<RealTimeDataItem *> &list);
#define __RealTimeData_Declares(name) int name(int num, std::vector<RealTimeDataItem *> &list);
class RealTimeData
{
public:
    RealTimeData();

    REALTIMEDATA_ITEMS() // 所有的数据列表，变量

    //-----------返回对应的设备的数据列表------------------//
    __RealTimeData_Declare(to_inv_solar); // 逆变-太阳能
    __RealTimeData_Declare(to_meter);     // 电表
    __RealTimeData_Declare(to_duanluqi);  // 断路器
    __RealTimeData_Declare(to_pingan);    // 平安报
    __RealTimeData_Declare(to_yu);        // 雨量水位
    __RealTimeData_Declare(to_water);     // 水位 水位预警
    __RealTimeData_Declare(to_ht);        // 箱内温湿
    __RealTimeData_Declare(to_od);        // 开箱
    __RealTimeData_Declare(to_tc_hc);     // 温湿
    __RealTimeData_Declare(to_ib);        // 进线断路器
    __RealTimeData_Declares(to_sms);      // sms
    __RealTimeData_Declares(to_gnss);     // gnss
    __RealTimeData_Declares(to_dam);      // DAM
    __RealTimeData_Declares(to_cam);      // cam

    __RealTimeData_Declare(to_all);       // all data
};

// 用于提交实时数组的Json包结构
class RealTimeDataItemJson
{
public:
    unsigned int tm = 0;
    std::string stcd = "";
    int ch = 0;
    std::vector<RealTimeDataItem *> values;
    _CLASSS_JSON_DEFAULT(tm, stcd, ch, values);
};

#endif